package jxerializeml.handling;

import jxerializeml.clues.classes.InvokeClassListeners;

/**
 * <p>
 *   Contains four methods called during serialization or deserialization.
 *   However, it will be only called if annotation {@link InvokeClassListeners}
 *   was used previously.
 * </p>
 * <p>
 *   You don't have to implement this interface. You can just define these four
 *   methods directly (doesn't matter if they will be private).
 * </p>
 * 
 * @author Tomáš Zíma
 */
public interface ReadWriteListener {
	/** Called before serialization. */
	public void preserialize();
	
	/** Called after serialization. */
	public void postserialize();
	
	/** Called before deserialization. */
	public void predeserialize();
	
	/** Called after deserialization. */
	public void postdeserialize();
}
